﻿@model ShieldNet.Models.SpamsInDayObject
@{
    ViewBag.Title = "Home Page";
}

<section>
    <div class="container">
        <div class="row">
            <div class="col-md-5">
                <div class="shield-post wow fadeInUp" data-wow-delay="0.4s">
                    <a href="https://play.google.com/store/apps/details?id=com.xmobilevn.SMSBlocker4" target="_blank">
                        <i class="android" style="width:72px; height:72px; margin-right:20px; border:none"></i>
                    </a>
                    <p>xSMS-Chantinrac - Chặn tin rác MIỄN PHÍ</p>
                    <p>Tải về từ <a href="http://bit.ly/1dFuiCU" target="_blank"><strong>Google Play</strong></a> hoặc <a href="/apk/sms.apk" target="_blank"><strong>tại đây</strong></a>.</p>
                </div>
            </div>
            <div class="col-md-7">

            </div>
        </div>
    </div>
</section>
<section>
    <div class="container">
        <div class="row row-centered">
            <div class="col-md-6">
                <div class="countdown-container col-centered">
                    <div class="dash days_dash wow zoomIn" data-wow-delay="0.4s">
                        <div class="digit" id="total">0</div>
                        <span class="dash_title text-center">Tổng số tin đã chặn</span>
                    </div>
                </div>
            </div>
            <div class="col-md-6 col">
                <div class="countdown-container col-centered">
                    <div class="dash days_dash wow zoomIn" data-wow-delay="0.4s">
                        <div class="digit" id="totalDay">0</div>
                        <span class="dash_title text-center">Hôm nay</span>
                    </div>
                </div>
            </div>
        </div> <!-- /.row -->
    </div>
</section>
<section>
    <div class="container">
        <div class="row">
            <div class="col-xs-12 wow zoomIn" data-wow-delay="0.4s">
                <div class="row">
                    <table class="table demo table-bordered">
                        <thead>
                            <tr>
                                <th data-toggle="true" class="col-xs-2 text-left">Thời điểm</th>
                                <th data-toggle="true" class="col-xs-2 text-left">Số quấy rồi (spam)</th>
                                <th data-hide="phone" class="col-xs-8 text-left">Nội dung</th>
                            </tr>
                        </thead>
                        <tbody id="tblBody">
                            @foreach (var item in Model.SpamsObject)
                            {
                                <tr id="tr_@item.id" class="text-left">
                                    <td class="col-xs-2 text-left">@item.spam_datetime_format</td>
                                    <td class="col-xs-2 text-left">@item.msisdn</td>
                                    <td class="col-xs-8 text-left">@item.spam_text</td>
                                </tr>
                            }
                        </tbody>
                    </table>
                </div>
                <div class="row p_t_10 p_b_10">
                    <div class="col-md-3">
                        &nbsp;
                    </div>
                    <div class="col-md-2 text-center">
                        <a style="cursor:pointer" id="aPre"><< Tin cũ hơn</a>
                    </div>
                    <div class="col-md-2">
                        &nbsp;
                    </div>
                    <div class="col-md-2 text-center">
                        <a style="cursor:pointer" id="aNext">Tin mới hơn >></a>
                    </div>
                    <div class="col-md-3">
                        &nbsp;
                    </div>
                </div>
            </div>
            <input type="hidden" value="@Model.TotalDay" id="hdTotalDay" />
            <input type="hidden" value="@Model.Total" id="hdTotal" />
            @if (Model.SpamsObject.Count > 0)
            {
                <input type="hidden" value="@Model.MaxID" id="hdIDMax" />
            }
        </div>
    </div>
</section>
<section>
    <div class="container">
        <div class="row p_t_10">
            <div class="col-xs-12">
                <div class="dash days_dash wow zoomIn" data-wow-delay="0.4s">
                    <h4 style="padding: 0 0 20px 15px"><a href="http://chantinrac.vn/gioithieu.html" target="_blank">TÌM HIỂU VÌ SAO NHÀ MẠNG CHẶN TIN RÁC KHÔNG hiệu quả</a> HOẶC TẢI VỀ  PDF <a target="_blank" href="/doc/chantinrac.pdf">TẠI ĐÂY.</a></h4>
                </div>
            </div>
        </div>
    </div> <!-- /.container -->
</section>
<section>
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="shield-post wow fadeInUp" data-wow-delay="0.4s">
                    <p>xSMS-Chantinrac là phần mềm MIỄN PHÍ chặn tin rác, cuộc gọi rác cho Android Ice Cream, Jelly Bean hay Kit Kat hỗ trợ tất cả các mạng di động Viettel, MobiFone, VinaPhone, Vietnam Mobile.</p>
                    <p>- Chặn theo nội dung tin nhắn (người dùng tự định nghĩa và tải về từ server), nhà mạng chỉ chặn theo số điện thoại (xem cú pháp dịch vụ chỉ hỗ trợ nhập SĐT)</p>
                    <p>- Chặn không giới hạn số điện thoại (nhà mạng thu phí tháng cho 5 số đầu tiên, từ số thứ 6 thu thêm phí)</p>
                    <p>- Chặn ngoài danh bạ (tuỳ chọn)</p>
                    <p>- Chặn tin nhắn và cuộc gọi</p>
                    <p>- Thống kê lượt chặn spam.</p>
                    <p>- Chia sẻ thông tin spam với người dùng quanh bạn để phòng ngừa chủ động</p>
                    <p>- Chặn được spam từ tất cả các mạng</p>
                    <p>Để biết tại sao nhà mạng chặn tin rác không hiệu quả, xem chi tiết tại: <a href="http://chantinrac.vn/gioithieu.html">http://chantinrac.vn/gioithieu.html</a> </p>
                </div>
                <div class="shield-post wow fadeInUp" data-wow-delay="0.4s">
                    <p>
                        Không chỉ có thế, khi một tin nhắn có dấu là tin quảng cáo SPAM, xSMS-Chantinrac tự động nhận diện và cảnh bảo đến
                        người dùng, nếu được xác nhận đúng là tin xấu, số gửi sẽ tự động được thêm vào danh sách chặn để không làm
                        phiền về sau. Đây là tính năng không thể có được bởi giải pháp dựa trên OCS.
                        Người dùng có thể đóng góp bảo vệ cộng đồng, bằng cách chia sẻ thông tin về số xấu, nội dung xấu. Các thông tin
                        này sẽ được lưu trữ tập trung tai chantinrac.vn để chia sẻ đến các người dùng sử dụng xSMS-Chantinrac khác. Đây là điểm
                        mạnh nổi trội của xSMS-Chantinrac, giúp tạo ra một công đồng bảo vệ lẫn nhau chứ không chỉ phục vụ 1 cá nhân. Nhờ tính
                        khả năng chia sẻ thông tin lẫn nhau, các Shield sẽ tạo thành một mạng lưới, tức xSMS-Chantinrac, rất hiệu quả. Khi một số
                        xấu được chia sẻ để người khác, số xấu này sẽ không thể nhắn tin cho họ nữa
                    </p>
                </div>
            </div>
        </div>
    </div>
</section>

<section>
    <div class="container">
        <div class="row">
            <div class="col-xs-12">

            </div>
            <div class="col-xs-12">

            </div>
        </div>
    </div>
</section>

<script type="text/javascript">
    var clockTotal;
    var clockTotalDay;
    var totalDay = $("#hdTotalDay").val();
    var total = $("#hdTotal").val();
    var idMax = $("#hdIDMax").val();
    var timerInterval = 0;
    var holder = [], interval = 0;
    var index = 1;    
    $(document).ready(function () {
        $('.footable').footable();
        // Instantiate a counter
        clockTotal = new FlipClock($('#total'), total, {
            clockFace: 'Counter',
            autoStart: false,
            minimumDigits: 5
        });
        clockTotalDay = new FlipClock($('#totalDay'), totalDay, {
            clockFace: 'Counter',
            autoStart: false,
            minimumDigits: 5
        });

        timerInterval = setInit();

    });


    function setInit() {
        i = setInterval(GetNewData, 30000);
        console.log("setInit", i);
        return i;
    }

    function GetNewData() {
        $.ajax({
            url: '@Url.Action("Get_SpamsInfo_InDay","Home")',
            type: 'post',
            dataType: 'json',
            data: {
                id: eval($("#hdIDMax").val()),
                top: 100
            },
            headers: {
                'RequestVerificationToken': tokenHeaderValue
            },
            success: function (data) {
                console.log("Data", data);
                if (data.Status == 1) {
                    ChangeCourter(data.Data);
                }
            }
        });
    }

    function PagingData(type) {
        if (type == 1) // Next
        {
            index += 1;                
        }
        else {
            if(index >0)
                index -= 1;
           
        }
        if (type == 0 && index < 1) {
            return;
        }
        $.ajax({
            url: '@Url.Action("Get_TableSpam", "Home")',
            type: 'get',
            dataType: 'json',
            data: {
                offset: index,
                limit: 15
            },
            headers: {
                'RequestVerificationToken': tokenHeaderValue
            },
            success: function (data) {                
                console.log("Data", data, index);                
                LoadData(data);                
            }
        });
    }

    function LoadData(data) {     
        
        var strVar = "";
        for (i = 0; i < data.rows.length; i++) {

            strVar += "<tr id=\"tr_" + data.rows[i].id + "\" class='text-left'>";
            strVar += "  <td class=\"col-xs-2 text-left\">" + data.rows[i].spam_datetime_format + "<\/td>";
            strVar += "  <td class=\"col-xs-2 text-left\">" + data.rows[i].msisdn + "<\/td>";
            strVar += "  <td class=\"col-xs-8 text-left\">" + data.rows[i].spam_text + "<\/td>";
            strVar += "<\/tr>";
        }        
        
        var footable = $('table').data('footable');
        $(".footable>tbody>tr").each(function (index, elem) {
            $(elem).remove();
        });
        //add it
        footable.appendRow(strVar);        
    }

    function PrependSpamContent(data) {
        console.log("SpamsObject", data, data.length, data[0]);
        var strVar = "";
        for (i = 0; i < data.length; i++) {

            strVar += "<tr id=\"tr_" + data[i].id + "\">";
            strVar += "  <td class=\"col-xs-2 text-left\">" + data[i].spam_datetime_format + "<\/td>";
            strVar += "  <td class=\"col-xs-2 text-left\">" + data[i].msisdn + "<\/td>";
            strVar += "  <td class=\"col-xs-8 text-left\">" + data[i].spam_text + "<\/td>";
            strVar += "<\/tr>";
        }

        return strVar;

    }

    function ChangeCourter(data) {
        if (typeof data !== undefined) {
            console.log("Change Counter");
            totalDay = $("#hdTotalDay").val();
            total = $("#hdTotal").val();
            $("#hdIDMax").val(data.MaxID);
            if (data.Total > total) {
                $("#hdTotalDay").val(data.TotalDay);
            }

            if (data.TotalDay > 0) {
                var html = PrependSpamContent(data.SpamsObject);
                //$("#tblBody").prepend(html);
                var footable = $('table').data('footable');
                footable.prependRow(html);
                doWork(data.Total - total, data.TotalDay);
            }
        }
    }

    var queueTotal = new Queue();

    var queueTotalDay = new Queue();

    var doworkInterval = 1000;

    var funcClockTotal = function () {
        clockTotal.increment();
        queueTotal.dequeue(this);
    }

    var funcClockTotalDay = function () {
        clockTotalDay.increment();
        queueTotalDay.dequeue(this);
    }

    var func = function () {
        clockTotal.increment();
        clockTotalDay.increment();
        queue.dequeue(this);
    }

    function doWork(total, totalDay) {
        console.log("total, totalDay", total, totalDay);
        for (var i = 0 ; i < total; i++) {
            queueTotal.enqueue(funcClockTotal);
        }

        for (var i = 0 ; i < totalDay; i++) {
            queueTotalDay.enqueue(funcClockTotalDay);
        }

    }

    window.setInterval(function () {

        var thisFuncTotalDay = queueTotalDay.peek();
        var thisFuncTotal = queueTotal.peek();
        if (thisFuncTotalDay) {
            thisFuncTotalDay();
        }

        if (thisFuncTotal) {
            thisFuncTotal();
        }

    }, doworkInterval);


    function increasreCounter(value, intervalUnit, type) {

        var resetHolder = function () {
            for (var j = holder.length - 1 ; j >= 0; j--) {
                console.log('holder length', holder.length)
                window.clearTimeout(j);
                holder.splice(j, 1);
            }
            timerInterval = setInit();

            return false;
        };

        if (!intervalUnit) {
            intervalUnit = 1000;
        }

        if (value) {

            if (holder.length) {

                var newVal = holder.length + value;
                console.log('new val', holder.length, value, holder.length + value)
                resetHolder();
                console.log('after reset', holder.length);
                increasreCounter(newVal, false);

                interval = 0;

                return false;
            }

            for (var i = 1; i <= value; i++) {

                interval += intervalUnit;

                var to = window.setTimeout(function () {
                    if (type == 1) {
                        clock.increment();
                    }
                    else {
                        clock2.increment();
                    }

                }, interval);

                holder.push(i);

            }

            value -= 1;
        }

        resetHolder();

        return false;

    }
    //$(document).ready(function () {
    //    var table = $('#tblSpams').DataTable({
    //        responsive: true,
    //        ordering: false,
    //        info: false,
    //        filter: false,
    //        bLengthChange: false,
    //        paging: false,
    //        retrieve: true,
    //        destroy: true
    //    });
    //    //new $.fn.dataTable.FixedHeader(table);
    //});

    $(function () {
        $('table').footable()
        $("#aPre").click(function (e) {
            e.preventDefault();
            PagingData(0);
        });
        $("#aNext").click(function (e) {
            e.preventDefault();
            PagingData(1);
        });
    });
   
</script>